const Common = require('../../utils/common')
const request = require('../../utils/request')
Page({
  /**
   * 页面的初始数据
   */
  data: {
    merchantTodayOrderNum: 0,
    merchantWaitTicketNum: 0,
    todayCheckNum: 0,
    todayRefuseNum: 0,
    totalOrders: 3,
    notice: "",
    activeRate: "8%",
    showPhoneModal: false, // 控制手机号表单弹窗显示
    phoneNumber: "", // 绑定手机号输入值
    userRole: '', // 用户角色：visitor/check_user/merchant
    timer: null // 用于保存定时器实例
  },

  /**
   * 顶部功能卡跳转
   */
  // 订单申报 → 商户页（通过 wx:if 已限制显示，无需再检查权限）
  toMerchantPage() {
    console.log("跳转到商户")
    wx.navigateTo({
      url: '/pages/merchant/apply'
    });
  },
  // 核查扫码 → 核查页（通过 wx:if 已限制显示，无需再检查权限）
  toCheckPage() {
    wx.navigateTo({
      url: '/pages/check/check'
    });
  },
  // 凭证查询 → 直接进入申请页面
  toCertificatePage() {
    wx.navigateTo({
      url: '/pages/sale-ticket-apply/sale-ticket-apply'
    });
  },
  // 我的申请凭证 → 游客申请记录页
  toMyApplications() {
    wx.navigateTo({
      url: '/pages/my-applications/my-applications'
    });
  },
  // 商品溯源 → 批次号查询页
  toProductTrace() {
    wx.navigateTo({
      url: '/pages/product-trace/product-trace'
    });
  },

  /**
   * 商户功能跳转
   */
  toHistoryOrder() {
    wx.navigateTo({
      url: '/pages/merchant/apply'
    });
  },
  // 凭证商户审核页面
  toCertificateJudge() {
    wx.navigateTo({
      url: `/pages/sale-ticket-judge/sale-ticket-judge`,
    })
  },

  /**
   * 门岗功能跳转
   */
  toCheckRecord() {
    const a = "declared"
    wx.navigateTo({
      url: `/pages/check/check?status=${a}`
    });
  },
  toAbnormalOrder() {
    const a = "rejected"
    wx.navigateTo({
      url: `/pages/check/check?status=${a}`
    });
  },


  /**
   * 便民工具跳转
   */
  // 意见反馈（原结算日历）
  toFeedback() {
    wx.navigateTo({
      url: '/pages/suggestion/suggestion'
    });
  },
  // 投诉入口
  toComplaint() {
    wx.navigateTo({
      url: '/pages/complaints/complaints'
    });
  },

  /**
   * 新手教程跳转
   */
  toGuide() {
    wx.navigateTo({
      url: '/pages/tutorial/tutorial'
    });
  },

  checkPhoneBindStatus() {
    // 从缓存获取用户数据
    const userInfo = wx.getStorageSync('userInfo') || {};
    
    // 判断是否已绑定手机号（根据实际缓存结构调整判断条件）
    if (userInfo.phone && userInfo.phone.trim()) {
      // 已绑定，直接跳转
    } else {
      // 未绑定，显示手机号表单弹窗
      this.setData({
        showPhoneModal: true,
        pendingUrl: targetUrl // 暂存目标地址
      });
    }
  },

  /**
   * 手机号输入事件
   */
  onPhoneInput(e) {
    this.setData({
      phoneNumber: e.detail.value
    });
  },

  /**
   * 提交手机号
   */
  submitPhone() {
    const { phoneNumber, pendingUrl } = this.data;
    
    // 简单手机号验证
    if (!/^1[3-9]\d{9}$/.test(phoneNumber)) {
      wx.showToast({
        title: '请输入有效的手机号',
        icon: 'none',
        duration: 2000
      });
      return;
    }

    // 提交到后端保存（这里仅做示例，实际需调用真实接口）
    wx.showLoading({ title: '提交中...' });
    
    // 模拟接口请求
    setTimeout(() => {
      wx.hideLoading();
      
      // 保存到缓存
      const userInfo = wx.getStorageSync('userInfo') || {};
      userInfo.phone = phoneNumber;
      wx.setStorageSync('userInfo', userInfo);
      
      // 隐藏弹窗并跳转
      this.setData({ showPhoneModal: false, phoneNumber: "" });
      wx.navigateTo({ url: pendingUrl });
    }, 1000);
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.onLoad();
  },

  fetchData: function() {
    // 可添加数据加载逻辑
    request.get('/admin-api/mini/home/getHomeData').then(res =>{
      if (res.code === 0) {
        this.setData({
          totalOrders: res.data.totalOrders,
          activeRate: res.data.activeRate
        })
      }
    });
    // 判断用户身份
    request.get('/admin-api/mini/home/getRole').then(res =>{
      if (res.code === 0) {
        const role = res.data.role;
        wx.setStorageSync('phone', res.data.phone);
        wx.setStorageSync('role', res.data.role);
        // 保存商户ID（如果存在）
        if (res.data.merchantId) {
          wx.setStorageSync('merchantId', res.data.merchantId);
        }
        // 保存商户名称（如果存在，可能是逗号分隔的多个商户名）
        if (res.data.merchantName) {
          wx.setStorageSync('merchantName', res.data.merchantName);
        }
        // 保存用户姓名（role接口返回的name字段）
        if (res.data.name) {
          wx.setStorageSync('roleName', res.data.name);
        }
        // 保存新手教程内容（如果存在）
        if (res.data.study) {
          wx.setStorageSync('studyContent', res.data.study);
        }
        
        this.setData({ 
          userRole: role,
          notice: res.data.notice
        }); // 保存到页面 data 中
        console.log("role："+role)
        switch (role){
          case 'check_user':
             // 请求用户今日核验数据
             request.get('/admin-api/mini/home/getCheckInfo', this.data.queryParam).then(res => {
              if (res.code === 0) {
                this.setData({
                  todayCheckNum : res.data.declared,
                  todayRefuseNum : res.data.rejected
                })
              }
            })
            case 'merchant':
              // 请求用户今日核验数据
              request.get('/admin-api/mini/home/getMerchantCount').then(res => {
               console.log("res:" + res)
               if (res.code === 0) {
                 this.setData({
                  merchantTodayOrderNum : res.data.getMerchantCount,
                  merchantWaitTicketNum : res.data.merchantWaitTicketNum
                 })
               }
             })
        }
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    // 页面加载时立即请求一次
    this.fetchData();
    
    // 然后设置定时器，每5分钟刷新一次
    const timer = setInterval(() => {
      this.fetchData();
    }, 5 * 60 * 1000); // 5分钟 = 5 * 60 * 1000毫秒
    
    this.setData({ timer: timer });
    // Common.getUserInfo();
    // const role =  wx.getStorageSync('role') || '';
  },
  onUnload: function() {
    // 页面卸载时清除定时器，防止内存泄漏
    if (this.data.timer) {
      clearInterval(this.data.timer);
    }
  },
  onShow: function () {
    // 页面显示
  }
});